package com.softtown.modules.sys.dao;

import com.softtown.common.dao.BaseDao;
import com.softtown.modules.sys.entity.SysMessageEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 消息模块Dao
 *
 * @author Dingyayong
 * @version v1.0
 * @create 2019-07-09 17:06
 **/
@Mapper
@Component(value = "SysMessageDao")
public interface SysMessageDao extends BaseDao<SysMessageEntity> {
    /**
    * 查询消息列表
    * @param  param
    * @param  startTime
    * @param  emdTime
    * @param userId
    * @return List<SysMessageEntity>
    * @author Dingyayong
    * @date 2019-07-09 17:23
    */
    List<SysMessageEntity> selectByParam (@Param("param") String param, @Param("startTime") String startTime, @Param("endTime") String emdTime, @Param("userId") Long userId);

    /**
     * 查询消息列表
     * @param  messageId
     * @param userId
     * @return int
     * @author Dingyayong
     * @date 2019-07-09 17:23
     */
    int removeById (@Param("userId") Long userId, @Param("messageId") Long messageId);

    /**
     * 更新为已读消息
     * @param message
     * @return int
     * @author Dingyayong
     * @date 2019-07-09 17:23
     */
    int updateByIdReadMessage (@Param("messageId") Long message);

    /**
    * 获取未读信息的列表
    * @param userId 用户id
    * @return List<SysMessageEntity>
    * @author Dingyayong
    * @date 2019-07-10 19:57
    */
    List<SysMessageEntity> querySelectByNotRead (@Param("userId") Long userId);

    /**
     * 更新为未读消息
     * @param message
     * @return int
     * @author Dingyayong
     * @date 2019-07-09 17:23
     */
    int updateByIdNotReadMessage(@Param("messageId") Long message);
}

